#ifndef CANVAS_H
#define CANVAS_H

/* 画布缓冲区（根据实际内存调整大小） */        // 中 516  304  小 344 202
#define CANVAS_WIDTH  688
#define CANVAS_HEIGHT 405
// 中等画布
#define MID_CANVAS_WIDTH  516
#define MID_CANVAS_HEIGHT  304
// 小画布
#define SMALL_CANVAS_WIDTH  344
#define SMALL_CANVAS_HEIGHT  202
// 橡皮擦状态
#define ERASER_ON   1
#define ERASER_OFF  0
// 事件绑定状态
#define EVENT_DRAW  1
#define EVENT_SHAPE 2


#define ERASER_RADIUS 10  // 橡皮擦半径

// 全局静态变量声明
// 画笔大小
extern int pen_size;
// 橡皮擦大小
extern int eraser_size;
// 画布大小
extern int canvas_size;
// 当前画布对象
extern lv_obj_t * canvas;
// 橡皮擦状态变量
extern int eraser_flag;
// 定义画布背景色
extern lv_color_t bg_color;
// 当前用户名
extern char current_username[20];

// 事件绑定标志
extern int event_flag;

// 函数声明
void draw_event_cb(lv_event_t * e);
void create_canvas(lv_obj_t * Panel);

void draw_event_cb_1(lv_event_t * e);
void clear_canvas(void);

bool save_canvas_as_png(const char *username);

bool load_png_to_canvas(const char *png_path);

void draw_png_to_canvas(lv_obj_t * canvas, const char * png_path);

// bool load_bmp_to_canvas(const char *bmp_path);

// bool save_canvas_as_bmp(const char *username);

#endif

